/**
  editormd :

  github：
  https://github.com/pandao/editor.md
  
  官网：
  https://pandao.github.io/editor.md/

  完整示例：
  https://pandao.github.io/editor.md/examples/full.html
 */


var tiosite_blog_edit_can_leave = true;
$(function() {

  tiosite_header_notfix(false);

  document.title = "写篇博客，增加记忆";

  var element = layui.element; //导航的hover效果、二级菜单等功能，需要依赖element模块

  //监听导航点击
  element.on("nav(header_nav)", function(elem) {
    console.log(elem);
    // layer.msg(elem.text());
  });

  element.render();

  /**
   * 初始化原创输入框
   * @param {*} elem 
   */
  function initoriginal(elem) {
	$("#reprint_url_div")[0].style.display = elem.checked ? "none" : "";
    if (elem.checked) {
      $("#fromurl").removeAttr("lay-verify");
    } else {
      $("#fromurl").attr("lay-verify", "required");
    }
  }

  var form = layui.form;
  form.on("checkbox(original)", function(data) {
    console.log(data.elem.name); //得到checkbox原始DOM对象
    console.log(data.elem.checked); //是否被选中，true或者false
    console.log(data.value); //复选框value值，也可以通过data.elem.value得到
    console.log(data.othis); //得到美化后的DOM对象
	initoriginal(data.elem);
  });
  form.render();

  initoriginal($("#original")[0]);


  /**
	 * 提交表单
	 * 按钮点击或者表单被执行提交时触发，其中回调函数只有在验证全部通过后才会进入，回调返回三个成员：
	 */
  form.on("submit(publish)", function(data) {
    console.log(data.elem); //被执行事件的元素DOM对象，一般为button对象
    console.log(data.form); //被执行提交的form对象，一般在存在form标签时才会返回
    console.log(data.field); //当前容器的全部表单字段，名值对形式：{name: value}

    // $("#md").val(blogeditor.getMarkdown());
    // $("#html").val(blogeditor.getHTML());

    ajax.post("/blog/save", {
      data: $(data.form).serialize(),
      success: function(resp) {
        if (resp.ok) {
          layer.msg("保存成功");
          tiosite_blog_edit_can_leave = true;
          // window.location.href = "/blog/r/index.html?id=" + resp.data.id;0
          window.location.href = "/" + resp.data.id;   //用nginx的rewrite重写了一下路径: rewrite ^\/(\d+?)$ /blog/r/index.html?id=$1 last;
        } else {
          layer.alert(resp.msg || "保存失败");
        }
      }
    });

    // var html_content = $('#html-content')[0];
    // html_content.innerHTML = '';
    // var textarea = document.createElement('textarea');
    // html_content.appendChild(textarea);
    // textarea.innerHTML = blogeditor.getMarkdown(); //blogeditor.getHTML();

    // testEditor = editormd.markdownToHTML('html-content', {
    // 	//注意：这里是上面DIV的id
    // 	htmlDecode: 'style,script,iframe',
    // 	emoji: true,
    // 	taskList: true,
    // 	theme: 'dark',
    // 	previewTheme: 'dark',
    // 	tex: true, // 默认不解析
    // 	flowChart: true, // 默认不解析
    // 	sequenceDiagram: true, // 默认不解析
    // 	codeFold: true,
    // });

    return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
  });

  // editormd.markdownToHTML("html-content");
  blogeditor = editormd("blogeditor_container", {
    htmlDecode: true, //这个参数你可以注意一点，true的话就部分支持原生Html了
    width: "100%",
    height: 500,

    // theme: 'dark',
    // previewTheme: 'dark',
    // editorTheme: 'pastel-on-dark',

    path: "/res/editormd/lib/",
    codeFold: true,
    saveHTMLToTextarea: true, // 保存 HTML 到 Textarea
    searchReplace: true,
    emoji: true,
    placeholder: "写篇博客，增加记忆... ...",
    taskList: true,
    atLink: false,
    emailLink: false,
    // autoHeight: true,  //自动高度
    tocm: true, // Using [TOCM]
    tex: true, // 开启科学公式TeX语言支持，默认关闭
    flowChart: true, // 开启流程图支持，默认关闭
    sequenceDiagram: true, // 开启时序/序列图支持，默认关闭,
    imageUpload: true,
    imageFormats: ["jpg", "jpeg", "gif", "png"],
    imageUploadURL: "${api_ctx}/blog/uploadimg${api_suf}",
    lineNumbers: true,
    toolbarIcons: function() {
      return [
        // 'undo',
        // 'redo',
        // '|',
        "bold",
        "del",
        "italic",
        "quote",
        // 'ucwords',
        // 'uppercase',
        // 'lowercase',
        "|",
        "h1",
        "h2",
        "h3",
        // 'h4',
        // 'h5',
        // 'h6',
        "|",
        "list-ul",
        "list-ol",
        "hr",
        "|",
        "link",
        // "reference-link",
        "image",
        // "code",
        // "preformatted-text",
        "code-block",
        "table",
        // 'datetime',
        // 'html-entities',
        // 'pagebreak',
        // '|',
        // 'goto-line',
        "watch",
        "preview"
        // 'fullscreen'
      ];
    }
  });

  $("#get-md-btn").bind("click", function() {
    var html_content = $("#html-content")[0];
    html_content.innerHTML = "";
    var textarea = document.createElement("textarea");
    html_content.appendChild(textarea);
    textarea.innerHTML = blogeditor.getMarkdown(); //blogeditor.getHTML();

    testEditor = editormd.markdownToHTML("html-content", {
      //注意：这里是上面DIV的id
      htmlDecode: "style,script,iframe",
      emoji: true,
      taskList: true,
      theme: "dark",
      previewTheme: "dark",
      tex: true, // 默认不解析
      flowChart: true, // 默认不解析
      sequenceDiagram: true, // 默认不解析
      codeFold: true
    });
  });


  $("#blogeditor_container").on("paste", "textarea", function(e) {
    //processParseImg(e, blogeditor);
  });

  $("#blogeditor_container").on("change", "textarea", function(e) {
    //processParseImg(e, blogeditor);
    tiosite_blog_edit_can_leave = false;
  });

  // 绑定beforeunload事件
  $(window).bind("beforeunload", function() {
      if (!tiosite_blog_edit_can_leave) {
        if (blogeditor.getMarkdown() && blogeditor.getMarkdown().trim()) {
          if (blogeditor.getMarkdown().trim().length > 10) {
            return "您输入的内容尚未保存，确定离开此页面吗？";
          }
        }
      }
    
  });


});
